"""
WebSocket应用示例 - 展示Gua框架的WebSocket处理能力
重构版本：基于Linus设计哲学，分离HTML模板
"简单胜过复杂"
"""

import time
from gua import GuaApp, respond
from gua.websocket_utils import create_chat_websocket
from gua.template_utils import respond_template

# 使用全局WebSocket管理器，避免实例不共享问题
from gua import ws_manager

app = GuaApp()

@app.websocket("/ws")
async def websocket_handler(scope, receive, send):
    """WebSocket处理器 - Linus式重构：使用通用WebSocket处理器，共享全局管理器"""
    return await create_chat_websocket(scope, receive, send, manager=ws_manager)

@app.route("/")
async def home():
    """主页 - WebSocket聊天界面 - Linus式重构：使用模板"""
    return respond_template("chat.html")

@app.route("/status")
async def status():
    """连接状态API"""
    return respond({
        "active_connections": len(ws_manager.connections),
        "server_time": time.time(),
        "status": "running"
    })

if __name__ == "__main__":
    import subprocess
    import sys
    
    # 使用gua命令显示示例启动信息
    result = subprocess.run([sys.executable, "-m", "gua.cli", "examples.websocket_app:app", "--example-info"],
                          capture_output=True, text=True)
    if result.returncode == 0:
        print(result.stdout)
    else:
        print("错误: 无法显示启动信息")
        print("请手动运行: gua examples.websocket_app:app --example-info")